<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>getter 和 setter </title>
</head>
<body>
    <script>
        // Object.create  Object.defineProperties
        class Phone{
            // constructor 不是类必须的方法, 如果有属性初始化, 才会设置 constructor
            //价格属性  当获取『实例对象』的price属性的时候, 该方法会自动执行, 返回值为 price 的属性值
            get price(){
                return 6666;
            }

            //set  当设置『实例对象』的price属性的时候, 会自动触发
            set price(v){
                console.log('price被修改啦');
            }

            //静态属性的 set 和 get 控制
            //当获取『类 (构造函数)』的 total 属性时, 会执行该方法, 返回值为 total 的属性值
            static get total(){
                return 20000;
            }

            static set total(v){
                console.log('销量又增加了');
            }

            static shoujiming = '手机';
        }

        class SmartPhone extends Phone{

        }

        let lanmei = new Phone();

        // console.log(lanmei.price);
        // lanmei.price = 1234;

        // console.log(Phone.total);
        // Phone.total = 200000;

        // console.log(SmartPhone.shoujiming);
        console.log(SmartPhone.total);


    </script>
</body>
</html>